package com.tanhua.manage.controller;
import com.tanhua.domain.db.PageResult;
import com.tanhua.domain.db.UserInfo;
import com.tanhua.domain.mg.Comment;
import com.tanhua.domain.vo.CommentVo;
import com.tanhua.domain.vo.PublishDataVo;
import com.tanhua.domain.vo.VideoDataVo;
import com.tanhua.manage.service.UserDataService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageId;
import org.omg.CORBA.INTERNAL;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/manage")
@Slf4j
public class UserManagerController {
    //注入userDataService对象
    @Autowired
    private UserDataService userDataService;

    //用户数据翻页
    @GetMapping("/users")
    public ResponseEntity userDataPage(Integer page,Integer pagesize) {
        //调用service方法 传入分页条件 返回一个PageResult<UserInfoVo>对象
       PageResult<UserInfo> userInfoPageResult= userDataService.userDataPage(page,pagesize);
       return ResponseEntity.ok(userInfoPageResult);
    }

    //用户基本资料
    @GetMapping("/users/{userID}")
    public ResponseEntity queryUserData(@PathVariable("userID") Integer userID) {
        //调用service方法 传入用户id 返回UserInfo对象
        UserInfo userInfo=userDataService.queryUserData(userID);
        //返回数据
        return ResponseEntity.ok(userInfo);
    }

    //动态分页列表展示
    @GetMapping("/messages")
    public ResponseEntity publishPageData(Integer pagesize,Integer page, Long uid,Integer state) {
         //需求：点击用户管理->查看 可以看到这个用户的动态列表数据
         //需要操作的数据库：quanzi_publish发布表
         //1.消费者编码分析
         //a.调用service层 传入指定页码、每页显示条数、当前用户Id、状态信息 返回pageResult<MomentVo>对象
        PageResult<PublishDataVo> publishDataVoPageResult=userDataService.publishPageData(pagesize,page,uid,state);
         //b.返回状态信息
        return ResponseEntity.ok(publishDataVoPageResult);
}

    //动态视频列表展示
    @GetMapping("/videos")
    public ResponseEntity videoPageData(Integer pagesize,Integer page, Long uid) {
        //需求：点击用户管理->点到视频展示的选项卡 可以看到这个用户的视频列表数据
        //需求操作的数据库：video视频表
        //1.消费者编码分析
        //a.调用service层 传入指定页码、每页显示条数、当前用户Id、状态信息 返回pageResult<VideoDataVo>对象
        PageResult<VideoDataVo> publishDataVoPageResult=userDataService.videoPageData(pagesize,page,uid);
        //b.返回状态信息
        return ResponseEntity.ok(publishDataVoPageResult);
    }

    //动态详情
    @GetMapping("/messages/{id}")
    public ResponseEntity singlePublishData(@PathVariable("id")String publishId) {
        //需求：用户点击动态记录下的查看 可以查看选中的动态详细信息
        //操作的数据库：发布表quanzi_publish
        //消费者编码分析：
        //a.调用service方法 传入publishId 返回PublishDataVo
       PublishDataVo publishDataVo= userDataService.singlePublishData(publishId);
        //b.返回状态信息
        return ResponseEntity.ok(publishDataVo);
    }

    //评论列表翻页
    @GetMapping("/messages/comments")
    public ResponseEntity commontLinkedData(Integer pagesize,Integer page,String sortProp,String sortOrder,String messageID) {
        //需求：点击查看 发送评论列表请求
        //数据库：quanzi_Commont评论表
        //消费者分析：
        //a.调用service方法 传入分页参数和查询条件 返回pageResult<CommontVo>对象
       PageResult<CommentVo> commentVo= userDataService.commontLinkedData(pagesize,page,sortProp,sortOrder,messageID);
        //b.返回状态信息
        return ResponseEntity.ok(commentVo);
    }





}
